package com.wanpinghui.wphlibrary.model.object;

import android.content.Context;

import com.wanpinghui.wphlibrary.model.base.bean.ImageBean;
import com.wanpinghui.wphlibrary.model.object.bean.FeedBackReasonBean;
import com.wanpinghui.wphlibrary.model.object.bean.FeedbackInfoBean;
import com.wanpinghui.wphlibrary.model.object.bean.GetParticipationListResult;
import com.wanpinghui.wphlibrary.model.object.bean.ObjectDetailBean;

import java.util.List;

import retrofit.callback.YRequestCallback;

/***
 * 功能描述:
 * 作者:qiujialiu
 * 时间:2017/11/23
 ***/

public interface ObjectService {
    /**
     * 获取项目列表
     * @param sortVal 排序字段值, 传入上一页最后一条的published_at字段, 用于分页
     * @param city all: 取全国订单 mine: 我关注的地狱订单 "深圳市": 取深圳市的订单
     * @param business 	all: 所有业务的订单 mine: 我关注的业务类型订单 1: 安装订单 2: 维修订单 3: 租赁订单 4: 采购订单
     * @param demand all: 所有项目 mine: 我参与的项目 ongoing: 进行中的项目 free: 免费项目
     */
    void getObjectList(long sortVal, String city, String business, String demand, YRequestCallback<List<ObjectDetailBean>> callback);

    /**
     * 获取项目详情
     * @param demandId
     * @param callback
     */
    void getObjectDetail(long demandId, YRequestCallback<ObjectDetailBean> callback);


    void getParticList(long demandId, YRequestCallback<GetParticipationListResult> callback);

    /**
     * 竞价
     * @param demandId
     * @param price
     * @param callback
     */
    void bidObject(long demandId, int price, YRequestCallback<ObjectDetailBean> callback);

    void callPhone(String caller, String called, YRequestCallback callback);

    /**
     * 项目完成后申报
     * @param demandId
     * @param photoBase64
     * @param callback
     */
    void objectReport(long demandId, String photoBase64, YRequestCallback<ImageBean> callback);

    void objectFeedback(long demandId, int type, String content, YRequestCallback<Object> callback);

    /**
     * 工程商反馈新接口
     * @param demandId 项目id
     * @param type 	1-客户暂无需求2-多次尝试，均联系不上客户5-客户仅需报价，完全没有采购意向6-同行下单，但订单描述中未说明7-客户实际预算与订单描述不符8-订单描述严重有误99-无理由退款
     * @param feedbackType 1-独家锁定  0-取消跟进
     * @param callback
     */
    void objectFeedback(long demandId, int type, int feedbackType, YRequestCallback<FeedbackInfoBean> callback);

    void getFeedBackType(YRequestCallback<List<FeedBackReasonBean>> callback);
}
